/*
提交：https://leetcode.cn/problems/longest-common-subsequence/description/
lc1143.最长公共子序列
ez,吴奇峰 2024.9.19
动态规划，dp二维数组
*/
class Solution {
public:
    int longestCommonSubsequence(string text1, string text2) {
            int n=text1.length(),m=text2.length();
            int dp[n+1][m+1];
            for(int i = 1;i<=n;++i){
                for(int j =1;j<=m;++j){
                    if(text1[i-1]==text2[j-1]) dp[i][j]=dp[i-1][j-1]+1;
                    else dp[i][j] = max(dp[i-1][j],dp[i][j-1]);
                }
            }
            return dp[n][m];
    }
};